package su.order.util;

import org.apache.commons.lang3.StringUtils;

import su.tool.Configuration;
import su.tool.FunctionUtil;

public class OrderUtil {

	/**
	 * 根据运费系数，获取其对应的具体值
	 * @param freightType 如A/B/C
	 * @return 如1.2
	 */
	public static double getProductFreightTypeContent(String freightType){
		if(StringUtils.isBlank(freightType))return 0;
		String confVal = Configuration.getInstance().getValue("order.finance.freight"+freightType);
		if(StringUtils.isBlank(confVal))return 0;
		return Double.parseDouble(confVal);
	}
	/**
     * 根据公式key，获取理论提成公式<br/>
     * （SJ单价售价，ZSJ总售价，YF运费，FP是否开发票，CCJ单价出厂价,XSL售价量）
     * @param pfunc
     * @return
     */
    public static String getFuncTcCon(String pfuncKey){
    	if(StringUtils.isEmpty(pfuncKey))return "0";
    	if("1".equals(pfuncKey)){
    		return "ZSJ-(YF)";
    	}
    	if("2".equals(pfuncKey)){
    		return "ZSJ-(YF)-(FP)*(ZSJ)*0.1612";
    	}
    	if("3".equals(pfuncKey)){
    		return "(SJ-(CCJ))/2*(XSL)-(YF)-(FP)*(SJ-(CCJ))/2*(XSL)*0.1612";
    	}
    	if("4".equals(pfuncKey)){
    		return "ZSJ-(YF)";
    	}
    	return "0";
    }
    /**
     * 根据公式key，获取理论税金公式<br/>
     * （TCBZ单位提成标准，YF单位运费，SJ单价售价，CCJ单价出厂价）
     * @param pfuncKey
     * @return
     */
    public static String getFuncTaxCon(String pfuncKey){
    	if(StringUtils.isEmpty(pfuncKey))return "0";
    	if("1".equals(pfuncKey)){
    		return "(TCBZ+(YF))*0.1612";
    	}
    	if("2".equals(pfuncKey)){
    		return "(SJ)*0.1612";
    	}
    	if("3".equals(pfuncKey)){
    		return "(SJ-(CCJ))/2*0.1612";
    	}
    	if("4".equals(pfuncKey)){
    		return "(TCBZ)*0.1612";
    	}
    	return "0";
    }
    /**
     * 根据公式key，获取理论公司利润公式<br/>
     * (GSTL公司对应提留,SJ单价售价,CCJ出厂价,XSL售价量)
     * @param t
     * @return
     */
    public static String getFuncMarginCon(String pfuncKey){
    	if(StringUtils.isEmpty(pfuncKey))return "0";
    	if("1".equals(pfuncKey)){//利润=公司对应提留*（1-0.1612）
    		return "(GSTL)*(1-0.1612)";
    	}
    	if("2".equals(pfuncKey)){
    		return "GSTL+0";//公司对应提留
    	}
    	if("3".equals(pfuncKey)){//利润=（售价-出厂价）/2-（售价-出厂价）*0.1612=（售价-出厂价）*0.3388
    		return "(SJ-(CCJ))*XSL*0.3388";
    	}
    	if("4".equals(pfuncKey)){//利润=对应提留*（1-0.1612）
    		return "(TL)*(1-0.1612)";
    	}
    	return "0";
    }
    
    /**
     * 使输入数尾数变为5的位数
     * @param input为两位小数的double数
     * @return
     */
    public static double get50Value(double input){
    	if(input==0)return 0;
    	int fv = (int)(input*100);
    	int mv = fv%10;
    	int rv = (int)(input*10);
    	if(mv<=2){
    		return FunctionUtil.div(rv, 10, 2);
    	}
    	if(mv<=7){
    		return FunctionUtil.div(rv+0.5, 10, 2);
    	}
    	return FunctionUtil.div(rv+1, 10, 2);
    }
    
}
